package com.java.softproblem.exer2;

/**
 * @author luzhikun
 * @date &{DATE}-10:01
 */

/**
 * 利用同步机制，将单例模式中的懒汉式改写为线程安全的
 */
public class SyscDesignTest {
    public static void main(String[] args) {
//      BankTes bankTes=new BankTes();
        BankTes.getInstance();
    }
}

class BankTes {
    private BankTes() {

    }

    private static BankTes bankTes = null;

    //方式一
//    public static synchronized getInstance(){
    public static BankTes getInstance() {
        //方式1.1：类似一   效率都比较低
//        synchronized (BankTes.class){
//            if (bankTes ==null ){
//                bankTes=new BankTes();
//            }
//            return bankTes;
//        }
        //方式二： 效率最高
        if (bankTes == null) {
            synchronized (BankTes.class) {
                if (bankTes == null) {
                    bankTes = new BankTes();
                }
            }
        }
        return bankTes;
        //方式三：
//            show();
//        return bankTes;
    }
//    public static void show(){
//        if (bankTes ==null ){
//            bankTes=new BankTes();
//        }
//    }

}